Micron Document
baubs git

Node / mirrors / respira / commits / a4fc959

Commit a4fc959eb1e72287816a4276ef128bb8ba8dfe31


Parents : 7c2172f
Author : Jan-Henrik Bruhn <jan-henrik.bruhn@offis.de>
Date : 2025-12-18T11:27:58+01:00

fix: slightly shorten homing message

Changes

1 files changed, 386 insertions(+), 396 deletions(-)


Diff

diff --git a/src/utils/errorCodeHelpers.ts b/src/utils/errorCodeHelpers.ts
index 57bceab..a0d3e0d 100644
--- a/src/utils/errorCodeHelpers.ts
+++ b/src/utils/errorCodeHelpers.ts
@@ -1,396 +1,386 @@
-/**
- * Brother PP1 Protocol Error Codes
- * Based on App/Asura.Core/Models/SewingMachineError.cs
- */
-
-export const SewingMachineError = {
- NeedlePositionError: 0x00,
- SafetyError: 0x01,
- LowerThreadSafetyError: 0x02,
- LowerThreadFreeError: 0x03,
- RestartError10: 0x10,
- RestartError11: 0x11,
- RestartError12: 0x12,
- RestartError13: 0x13,
- RestartError14: 0x14,
- RestartError15: 0x15,
- RestartError16: 0x16,
- RestartError17: 0x17,
- RestartError18: 0x18,
- RestartError19: 0x19,
- RestartError1A: 0x1A,
- RestartError1B: 0x1B,
- RestartError1C: 0x1C,
- NeedlePlateError: 0x20,
- ThreadLeverError: 0x21,
- UpperThreadError: 0x60,
- LowerThreadError: 0x61,
- UpperThreadSewingStartError: 0x62,
- PRWiperError: 0x63,
- HoopError: 0x70,
- NoHoopError: 0x71,
- InitialHoopError: 0x72,
- RegularInspectionError: 0x80,
- Setting: 0x98,
- None: 0xDD,
- Unknown: 0xEE,
- OtherError: 0xFF,
-} as const;
-
-/**
- * Detailed error information with title, description, and solution steps
- */
-interface ErrorInfo {
- title: string;
- description: string;
- solutions: string[];
- /** If true, this "error" is really just an informational step, not a real error */
- isInformational?: boolean;
-}
-
-/**
- * Detailed error messages with actionable solutions
- * Only errors with verified solutions are included here
- */
-const ERROR_DETAILS: Record<number, ErrorInfo> = {
- [SewingMachineError.NeedlePositionError]: {
- title: 'The Needle is Down',
- description: 'The needle is in the down position and needs to be raised before continuing.',
- solutions: [
- 'Press the needle position switch to raise the needle',
- ],
- },
- [SewingMachineError.SafetyError]: {
- title: 'Safety Error',
- description: 'The machine is sensing an operational issue.',
- solutions: [
- 'Remove the thread on the top of the fabric and then remove the needle',
- 'Remove the thread on the underside of the fabric and clean the bobbin case of all threads',
- 'Check the bobbin case for scratches or contamination',
- 'Insert the embroidery needle',
- 'Check that the bobbin is inserted correctly',
- ],
- },
- [SewingMachineError.LowerThreadSafetyError]: {
- title: 'Lower Thread Safety Error',
- description: 'The bobbin winder safety device is activated.',
- solutions: [
- 'Check if the thread is tangled',
- ],
- },
- [SewingMachineError.LowerThreadFreeError]: {
- title: 'Lower Thread Free Error',
- description: 'Problem with lower thread.',
- solutions: [
- 'Slide the bobbin winder shaft toward the front',
- ],
- },
- [SewingMachineError.RestartError10]: {
- title: 'Restart Required',
- description: 'A malfunction occurred.',
- solutions: [
- 'Turn the machine off, then on again',
- ],
- },
- [SewingMachineError.RestartError11]: {
- title: 'Restart Required (M519411)',
- description: 'A malfunction occurred. Error code: M519411',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519411 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError12]: {
- title: 'Restart Required (M519412)',
- description: 'A malfunction occurred. Error code: M519412',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519412 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError13]: {
- title: 'Restart Required (M519413)',
- description: 'A malfunction occurred. Error code: M519413',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519413 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError14]: {
- title: 'Restart Required (M519414)',
- description: 'A malfunction occurred. Error code: M519414',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519414 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError15]: {
- title: 'Restart Required (M519415)',
- description: 'A malfunction occurred. Error code: M519415',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519415 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError16]: {
- title: 'Restart Required (M519416)',
- description: 'A malfunction occurred. Error code: M519416',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519416 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError17]: {
- title: 'Restart Required (M519417)',
- description: 'A malfunction occurred. Error code: M519417',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519417 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError18]: {
- title: 'Restart Required (M519418)',
- description: 'A malfunction occurred. Error code: M519418',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519418 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError19]: {
- title: 'Restart Required (M519419)',
- description: 'A malfunction occurred. Error code: M519419',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M519419 and contact technical support',
- ],
- },
- [SewingMachineError.RestartError1A]: {
- title: 'Restart Required (M51941A)',
- description: 'A malfunction occurred. Error code: M51941A',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M51941A and contact technical support',
- ],
- },
- [SewingMachineError.RestartError1B]: {
- title: 'Restart Required (M51941B)',
- description: 'A malfunction occurred. Error code: M51941B',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M51941B and contact technical support',
- ],
- },
- [SewingMachineError.RestartError1C]: {
- title: 'Restart Required (M51941C)',
- description: 'A malfunction occurred. Error code: M51941C',
- solutions: [
- 'Turn the machine off, then on again',
- 'If the problem persists, note error code M51941C and contact technical support',
- ],
- },
- [SewingMachineError.NeedlePlateError]: {
- title: 'Needle Plate Error',
- description: 'Check the needle plate cover.',
- solutions: [
- 'Reattach the needle plate cover',
- 'Check the bobbin case (for misalignment, scratches, etc.) and then reattach the needle plate cover',
- ],
- },
- [SewingMachineError.ThreadLeverError]: {
- title: 'Thread Lever Error',
- description: 'The needle threading lever is not in its original position.',
- solutions: [
- 'Return the needle threading lever to its original position',
- ],
- },
- [SewingMachineError.UpperThreadError]: {
- title: 'Upper Thread Error',
- description: 'Check and rethread the upper thread.',
- solutions: [
- 'Check the upper thread and rethread it',
- 'If the problem persists, replace the embroidery needle, then check the upper thread and rethread it',
- ],
- },
- [SewingMachineError.LowerThreadError]: {
- title: 'Lower Thread Error',
- description: 'The bobbin thread is almost empty.',
- solutions: [
- 'Replace the bobbin thread',
- 'Wind the thread onto the empty bobbin in the correct way, then insert the bobbin',
- ],
- },
- [SewingMachineError.UpperThreadSewingStartError]: {
- title: 'Upper Thread Error at Sewing Start',
- description: 'Check and rethread the upper thread.',
- solutions: [
- 'Press the Accept button to resolve the error',
- 'Check the upper thread and rethread it',
- 'If the problem persists, replace the embroidery needle, then check the upper thread and rethread it',
- ],
- },
- [SewingMachineError.PRWiperError]: {
- title: 'PR Wiper Error',
- description: 'PR Wiper Error.',
- solutions: [
- 'Press the Accept button to resolve the error',
- ],
- },
- [SewingMachineError.HoopError]: {
- title: 'Hoop Error',
- description: 'This embroidery frame cannot be used.',
- solutions: [
- 'Use another frame that fits the pattern',
- ],
- },
- [SewingMachineError.NoHoopError]: {
- title: 'No Hoop Detected',
- description: 'No hoop attached.',
- solutions: [
- 'Attach the embroidery hoop',
- ],
- },
- [SewingMachineError.InitialHoopError]: {
- title: 'Machine Initialization Required',
- description: 'The hoop needs to be removed and an initial homing procedure must be performed.',
- solutions: [
- 'Remove the embroidery hoop from the machine completely',
- 'Press the Accept button',
- 'Wait for the machine to complete its initialization (homing)',
- 'Once initialization is complete, reattach the hoop',
- 'The machine should now recognize the hoop correctly',
- ],
- isInformational: true, // This is a normal initialization step, not an error
- },
- [SewingMachineError.RegularInspectionError]: {
- title: 'Regular Inspection Required',
- description: 'Preventive maintenance is recommended. This message is displayed when maintenance is due.',
- solutions: [
- 'Please contact the service center',
- ],
- },
- [SewingMachineError.Setting]: {
- title: 'Settings Error',
- description: 'Stitch count cannot be changed.',
- solutions: [
- 'This setting cannot be modified at this time',
- ],
- },
-};
-
-/**
- * Simple error titles for all error codes
- */
-const ERROR_MESSAGES: Record<number, string> = {
- [SewingMachineError.NeedlePositionError]: 'Needle Position Error',
- [SewingMachineError.SafetyError]: 'Safety Error',
- [SewingMachineError.LowerThreadSafetyError]: 'Lower Thread Safety Error',
- [SewingMachineError.LowerThreadFreeError]: 'Lower Thread Free Error',
- [SewingMachineError.RestartError10]: 'Restart Required (0x10)',
- [SewingMachineError.RestartError11]: 'Restart Required (0x11)',
- [SewingMachineError.RestartError12]: 'Restart Required (0x12)',
- [SewingMachineError.RestartError13]: 'Restart Required (0x13)',
- [SewingMachineError.RestartError14]: 'Restart Required (0x14)',
- [SewingMachineError.RestartError15]: 'Restart Required (0x15)',
- [SewingMachineError.RestartError16]: 'Restart Required (0x16)',
- [SewingMachineError.RestartError17]: 'Restart Required (0x17)',
- [SewingMachineError.RestartError18]: 'Restart Required (0x18)',
- [SewingMachineError.RestartError19]: 'Restart Required (0x19)',
- [SewingMachineError.RestartError1A]: 'Restart Required (0x1A)',
- [SewingMachineError.RestartError1B]: 'Restart Required (0x1B)',
- [SewingMachineError.RestartError1C]: 'Restart Required (0x1C)',
- [SewingMachineError.NeedlePlateError]: 'Needle Plate Error',
- [SewingMachineError.ThreadLeverError]: 'Thread Lever Error',
- [SewingMachineError.UpperThreadError]: 'Upper Thread Error',
- [SewingMachineError.LowerThreadError]: 'Lower Thread Error',
- [SewingMachineError.UpperThreadSewingStartError]: 'Upper Thread Error at Sewing Start',
- [SewingMachineError.PRWiperError]: 'PR Wiper Error',
- [SewingMachineError.HoopError]: 'Hoop Error',
- [SewingMachineError.NoHoopError]: 'No Hoop Detected',
- [SewingMachineError.InitialHoopError]: 'Initial Hoop Position Error',
- [SewingMachineError.RegularInspectionError]: 'Regular Inspection Required',
- [SewingMachineError.Setting]: 'Settings Error',
- [SewingMachineError.Unknown]: 'Unknown Error',
- [SewingMachineError.OtherError]: 'Other Error',
-};
-
-/**
- * Get human-readable error message for an error code
- */
-export function getErrorMessage(errorCode: number | undefined): string | null {
- // Handle undefined or null
- if (errorCode === undefined || errorCode === null) {
- return null;
- }
-
- // 0xDD (221) is the default "no error" value
- if (errorCode === SewingMachineError.None) {
- return null; // No error to display
- }
-
- // Look up known error message
- const message = ERROR_MESSAGES[errorCode];
- if (message) {
- return message;
- }
-
- // Unknown error code
- return `Machine Error ${errorCode} (0x${errorCode.toString(16).toUpperCase().padStart(2, '0')})`;
-}
-
-/**
- * Check if error code represents an actual error condition
- */
-export function hasError(errorCode: number | undefined): boolean {
- return errorCode !== undefined && errorCode !== null && errorCode !== SewingMachineError.None;
-}
-
-/**
- * Get detailed error information including title, description, and solutions
- */
-export function getErrorDetails(errorCode: number | undefined): ErrorInfo | null {
- // Handle undefined or null
- if (errorCode === undefined || errorCode === null) {
- return null;
- }
-
- // 0xDD (221) is the default "no error" value
- if (errorCode === SewingMachineError.None) {
- return null;
- }
-
- // Look up known error details with solutions
- const details = ERROR_DETAILS[errorCode];
- if (details) {
- return details;
- }
-
- // For errors without detailed solutions, return basic info
- const errorTitle = ERROR_MESSAGES[errorCode];
- if (errorTitle) {
- return {
- title: errorTitle,
- description: 'Please check the machine display for more information.',
- solutions: [
- 'Consult your machine manual for specific troubleshooting steps',
- 'Check the error code on the machine display',
- 'Contact technical support if the problem persists',
- ],
- };
- }
-
- // Unknown error code
- return {
- title: `Machine Error 0x${errorCode.toString(16).toUpperCase().padStart(2, '0')}`,
- description: 'The machine has reported an error code that is not recognized.',
- solutions: [
- 'Note the error code and consult your machine manual',
- 'Turn the machine off and on again',
- 'If error persists, contact technical support with this error code',
- ],
- };
-}
-
-/**
- * Export ErrorInfo type for use in other files
- */
-export type { ErrorInfo };
+/**
+ * Brother PP1 Protocol Error Codes
+ * Based on App/Asura.Core/Models/SewingMachineError.cs
+ */
+
+export const SewingMachineError = {
+ NeedlePositionError: 0x00,
+ SafetyError: 0x01,
+ LowerThreadSafetyError: 0x02,
+ LowerThreadFreeError: 0x03,
+ RestartError10: 0x10,
+ RestartError11: 0x11,
+ RestartError12: 0x12,
+ RestartError13: 0x13,
+ RestartError14: 0x14,
+ RestartError15: 0x15,
+ RestartError16: 0x16,
+ RestartError17: 0x17,
+ RestartError18: 0x18,
+ RestartError19: 0x19,
+ RestartError1A: 0x1a,
+ RestartError1B: 0x1b,
+ RestartError1C: 0x1c,
+ NeedlePlateError: 0x20,
+ ThreadLeverError: 0x21,
+ UpperThreadError: 0x60,
+ LowerThreadError: 0x61,
+ UpperThreadSewingStartError: 0x62,
+ PRWiperError: 0x63,
+ HoopError: 0x70,
+ NoHoopError: 0x71,
+ InitialHoopError: 0x72,
+ RegularInspectionError: 0x80,
+ Setting: 0x98,
+ None: 0xdd,
+ Unknown: 0xee,
+ OtherError: 0xff,
+} as const;
+
+/**
+ * Detailed error information with title, description, and solution steps
+ */
+interface ErrorInfo {
+ title: string;
+ description: string;
+ solutions: string[];
+ /** If true, this "error" is really just an informational step, not a real error */
+ isInformational?: boolean;
+}
+
+/**
+ * Detailed error messages with actionable solutions
+ * Only errors with verified solutions are included here
+ */
+const ERROR_DETAILS: Record<number, ErrorInfo> = {
+ [SewingMachineError.NeedlePositionError]: {
+ title: "The Needle is Down",
+ description:
+ "The needle is in the down position and needs to be raised before continuing.",
+ solutions: ["Press the needle position switch to raise the needle"],
+ },
+ [SewingMachineError.SafetyError]: {
+ title: "Safety Error",
+ description: "The machine is sensing an operational issue.",
+ solutions: [
+ "Remove the thread on the top of the fabric and then remove the needle",
+ "Remove the thread on the underside of the fabric and clean the bobbin case of all threads",
+ "Check the bobbin case for scratches or contamination",
+ "Insert the embroidery needle",
+ "Check that the bobbin is inserted correctly",
+ ],
+ },
+ [SewingMachineError.LowerThreadSafetyError]: {
+ title: "Lower Thread Safety Error",
+ description: "The bobbin winder safety device is activated.",
+ solutions: ["Check if the thread is tangled"],
+ },
+ [SewingMachineError.LowerThreadFreeError]: {
+ title: "Lower Thread Free Error",
+ description: "Problem with lower thread.",
+ solutions: ["Slide the bobbin winder shaft toward the front"],
+ },
+ [SewingMachineError.RestartError10]: {
+ title: "Restart Required",
+ description: "A malfunction occurred.",
+ solutions: ["Turn the machine off, then on again"],
+ },
+ [SewingMachineError.RestartError11]: {
+ title: "Restart Required (M519411)",
+ description: "A malfunction occurred. Error code: M519411",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519411 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError12]: {
+ title: "Restart Required (M519412)",
+ description: "A malfunction occurred. Error code: M519412",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519412 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError13]: {
+ title: "Restart Required (M519413)",
+ description: "A malfunction occurred. Error code: M519413",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519413 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError14]: {
+ title: "Restart Required (M519414)",
+ description: "A malfunction occurred. Error code: M519414",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519414 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError15]: {
+ title: "Restart Required (M519415)",
+ description: "A malfunction occurred. Error code: M519415",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519415 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError16]: {
+ title: "Restart Required (M519416)",
+ description: "A malfunction occurred. Error code: M519416",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519416 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError17]: {
+ title: "Restart Required (M519417)",
+ description: "A malfunction occurred. Error code: M519417",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519417 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError18]: {
+ title: "Restart Required (M519418)",
+ description: "A malfunction occurred. Error code: M519418",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519418 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError19]: {
+ title: "Restart Required (M519419)",
+ description: "A malfunction occurred. Error code: M519419",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M519419 and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError1A]: {
+ title: "Restart Required (M51941A)",
+ description: "A malfunction occurred. Error code: M51941A",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M51941A and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError1B]: {
+ title: "Restart Required (M51941B)",
+ description: "A malfunction occurred. Error code: M51941B",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M51941B and contact technical support",
+ ],
+ },
+ [SewingMachineError.RestartError1C]: {
+ title: "Restart Required (M51941C)",
+ description: "A malfunction occurred. Error code: M51941C",
+ solutions: [
+ "Turn the machine off, then on again",
+ "If the problem persists, note error code M51941C and contact technical support",
+ ],
+ },
+ [SewingMachineError.NeedlePlateError]: {
+ title: "Needle Plate Error",
+ description: "Check the needle plate cover.",
+ solutions: [
+ "Reattach the needle plate cover",
+ "Check the bobbin case (for misalignment, scratches, etc.) and then reattach the needle plate cover",
+ ],
+ },
+ [SewingMachineError.ThreadLeverError]: {
+ title: "Thread Lever Error",
+ description: "The needle threading lever is not in its original position.",
+ solutions: ["Return the needle threading lever to its original position"],
+ },
+ [SewingMachineError.UpperThreadError]: {
+ title: "Upper Thread Error",
+ description: "Check and rethread the upper thread.",
+ solutions: [
+ "Check the upper thread and rethread it",
+ "If the problem persists, replace the embroidery needle, then check the upper thread and rethread it",
+ ],
+ },
+ [SewingMachineError.LowerThreadError]: {
+ title: "Lower Thread Error",
+ description: "The bobbin thread is almost empty.",
+ solutions: [
+ "Replace the bobbin thread",
+ "Wind the thread onto the empty bobbin in the correct way, then insert the bobbin",
+ ],
+ },
+ [SewingMachineError.UpperThreadSewingStartError]: {
+ title: "Upper Thread Error at Sewing Start",
+ description: "Check and rethread the upper thread.",
+ solutions: [
+ "Press the Accept button to resolve the error",
+ "Check the upper thread and rethread it",
+ "If the problem persists, replace the embroidery needle, then check the upper thread and rethread it",
+ ],
+ },
+ [SewingMachineError.PRWiperError]: {
+ title: "PR Wiper Error",
+ description: "PR Wiper Error.",
+ solutions: ["Press the Accept button to resolve the error"],
+ },
+ [SewingMachineError.HoopError]: {
+ title: "Hoop Error",
+ description: "This embroidery frame cannot be used.",
+ solutions: ["Use another frame that fits the pattern"],
+ },
+ [SewingMachineError.NoHoopError]: {
+ title: "No Hoop Detected",
+ description: "No hoop attached.",
+ solutions: ["Attach the embroidery hoop"],
+ },
+ [SewingMachineError.InitialHoopError]: {
+ title: "Machine Initialization Required",
+ description: "An initial homing procedure must be performed.",
+ solutions: [
+ "Remove the embroidery hoop from the machine completely",
+ "Press the Accept button",
+ "Wait for the machine to complete its initialization (homing)",
+ "Once initialization is complete, reattach the hoop",
+ "The machine should now recognize the hoop correctly",
+ ],
+ isInformational: true, // This is a normal initialization step, not an error
+ },
+ [SewingMachineError.RegularInspectionError]: {
+ title: "Regular Inspection Required",
+ description:
+ "Preventive maintenance is recommended. This message is displayed when maintenance is due.",
+ solutions: ["Please contact the service center"],
+ },
+ [SewingMachineError.Setting]: {
+ title: "Settings Error",
+ description: "Stitch count cannot be changed.",
+ solutions: ["This setting cannot be modified at this time"],
+ },
+};
+
+/**
+ * Simple error titles for all error codes
+ */
+const ERROR_MESSAGES: Record<number, string> = {
+ [SewingMachineError.NeedlePositionError]: "Needle Position Error",
+ [SewingMachineError.SafetyError]: "Safety Error",
+ [SewingMachineError.LowerThreadSafetyError]: "Lower Thread Safety Error",
+ [SewingMachineError.LowerThreadFreeError]: "Lower Thread Free Error",
+ [SewingMachineError.RestartError10]: "Restart Required (0x10)",
+ [SewingMachineError.RestartError11]: "Restart Required (0x11)",
+ [SewingMachineError.RestartError12]: "Restart Required (0x12)",
+ [SewingMachineError.RestartError13]: "Restart Required (0x13)",
+ [SewingMachineError.RestartError14]: "Restart Required (0x14)",
+ [SewingMachineError.RestartError15]: "Restart Required (0x15)",
+ [SewingMachineError.RestartError16]: "Restart Required (0x16)",
+ [SewingMachineError.RestartError17]: "Restart Required (0x17)",
+ [SewingMachineError.RestartError18]: "Restart Required (0x18)",
+ [SewingMachineError.RestartError19]: "Restart Required (0x19)",
+ [SewingMachineError.RestartError1A]: "Restart Required (0x1A)",
+ [SewingMachineError.RestartError1B]: "Restart Required (0x1B)",
+ [SewingMachineError.RestartError1C]: "Restart Required (0x1C)",
+ [SewingMachineError.NeedlePlateError]: "Needle Plate Error",
+ [SewingMachineError.ThreadLeverError]: "Thread Lever Error",
+ [SewingMachineError.UpperThreadError]: "Upper Thread Error",
+ [SewingMachineError.LowerThreadError]: "Lower Thread Error",
+ [SewingMachineError.UpperThreadSewingStartError]:
+ "Upper Thread Error at Sewing Start",
+ [SewingMachineError.PRWiperError]: "PR Wiper Error",
+ [SewingMachineError.HoopError]: "Hoop Error",
+ [SewingMachineError.NoHoopError]: "No Hoop Detected",
+ [SewingMachineError.InitialHoopError]: "Initial Hoop Position Error",
+ [SewingMachineError.RegularInspectionError]: "Regular Inspection Required",
+ [SewingMachineError.Setting]: "Settings Error",
+ [SewingMachineError.Unknown]: "Unknown Error",
+ [SewingMachineError.OtherError]: "Other Error",
+};
+
+/**
+ * Get human-readable error message for an error code
+ */
+export function getErrorMessage(errorCode: number | undefined): string | null {
+ // Handle undefined or null
+ if (errorCode === undefined || errorCode === null) {
+ return null;
+ }
+
+ // 0xDD (221) is the default "no error" value
+ if (errorCode === SewingMachineError.None) {
+ return null; // No error to display
+ }
+
+ // Look up known error message
+ const message = ERROR_MESSAGES[errorCode];
+ if (message) {
+ return message;
+ }
+
+ // Unknown error code
+ return `Machine Error ${errorCode} (0x${errorCode.toString(16).toUpperCase().padStart(2, "0")})`;
+}
+
+/**
+ * Check if error code represents an actual error condition
+ */
+export function hasError(errorCode: number | undefined): boolean {
+ return (
+ errorCode !== undefined &&
+ errorCode !== null &&
+ errorCode !== SewingMachineError.None
+ );
+}
+
+/**
+ * Get detailed error information including title, description, and solutions
+ */
+export function getErrorDetails(
+ errorCode: number | undefined,
+): ErrorInfo | null {
+ // Handle undefined or null
+ if (errorCode === undefined || errorCode === null) {
+ return null;
+ }
+
+ // 0xDD (221) is the default "no error" value
+ if (errorCode === SewingMachineError.None) {
+ return null;
+ }
+
+ // Look up known error details with solutions
+ const details = ERROR_DETAILS[errorCode];
+ if (details) {
+ return details;
+ }
+
+ // For errors without detailed solutions, return basic info
+ const errorTitle = ERROR_MESSAGES[errorCode];
+ if (errorTitle) {
+ return {
+ title: errorTitle,
+ description: "Please check the machine display for more information.",
+ solutions: [
+ "Consult your machine manual for specific troubleshooting steps",
+ "Check the error code on the machine display",
+ "Contact technical support if the problem persists",
+ ],
+ };
+ }
+
+ // Unknown error code
+ return {
+ title: `Machine Error 0x${errorCode.toString(16).toUpperCase().padStart(2, "0")}`,
+ description:
+ "The machine has reported an error code that is not recognized.",
+ solutions: [
+ "Note the error code and consult your machine manual",
+ "Turn the machine off and on again",
+ "If error persists, contact technical support with this error code",
+ ],
+ };
+}
+
+/**
+ * Export ErrorInfo type for use in other files
+ */
+export type { ErrorInfo };

Served by rngit 1.3.3 - Generated in 0.04s